# 获取底层平台的标识数据
import platform

# 查询可执行文件来获取各种架构信息
print(platform.architecture())  # ('64bit', 'WindowsPE')

# 机器类型
print(platform.machine())  # AMD64

# 计算机网络名称
print(platform.node())  # DESKTOP-UFJD5V2

# 标识底层平台的字符串
print(platform.platform())  # Windows-10-10.0.19041-SP0

# 处理器名称
print(platform.processor())  # Intel64 Family 6 Model 142 Stepping 10, GenuineIntel

# python编译代码和日期
print(platform.python_build())  # ('tags/v3.6.8:3c6b436a57', 'Dec 24 2018 00:16:47')

# 标识编译python的编译器字符串
print(platform.python_compiler())  # MSC v.1916 64 bit (AMD64)

# 标识python实现的SCM分支的字符串
print(platform.python_branch())  # tags/v3.6.8

# 标识python实现的字符串,可能的返回值有: 'CPython', 'IronPython', 'Jython', 'PyPy'
print(platform.python_implementation())  # CPython

# 标识python实现的SCM修订版的字符串
print(platform.python_revision())  # 3c6b436a57

# 返回python版本(字符串形式)
print(platform.python_version())  # 3.6.8

# 返回python版本(元祖形式)
print(platform.python_version_tuple())  # ('3', '6', '8')

# 返回系统平台的名称，如 'Linux', 'Darwin', 'Java', 'Windows'
print(platform.system())  # Windows

# 系统发布版本
print(platform.release())  # 10

# 系统发布版本信息
print(platform.version())  # 10.0.19041

# 返回系统所使用的常见营销名称
print(platform.system_alias('Windows', '10', '10.0.19041'))  # ('Windows', '10', '10.0.19041')

# uname信息
print(
    platform.uname())  # uname_result(system='Windows', node='DESKTOP-UFJD5V2', release='10', version='10.0.19041', machine='AMD64', processor='Intel64 Family 6 Model 142 Stepping 10, GenuineIntel')

# java平台 返回一个元组 (release, vendor, vminfo, osinfo)
print(platform.java_ver())  # ('', '', ('', '', ''), ('', '', ''))

# windows平台
# 从 Windows 注册表获取额外的版本信息并返回一个元组 (release, version, csd, ptype)
print(platform.win32_ver())  # ('10', '10.0.19041', 'SP0', 'Multiprocessor Free')

# 代表当前 Windows 版本的字符串,3.8版本新功能
# print(platform.win32_edition())

# 如果 win32_edition() 返回的 Windows 版本被识别为 IoT 版则返回 True,3.8版本新功能
# print(platform.win32_edition)

# mac os平台 返回元组 (release, versioninfo, machine)
print(platform.mac_ver())  # ('', ('', '', ''), '')

# unix平台 返回一个字符串元组 (lib, version)
print(platform.libc_ver())  # ('', '')
